<?php

require_once("View/View/PageView.php");
require_once("Common/Model/commonThings.php");
require_once("WorkoutUpdates/View/WorkoutUpdateView.php");
require_once("WorkoutUpdates/Model/WorkoutUpdateModel.php");

class WorkoutUpdatesController
{
	private $pageView;
	private $workoutUpdateView;
	private $workoutUpdateModel;

	public function __construct()
	{
		$this->pageView = new PageView();
		$this->workoutUpdateView = new WorkoutUpdateView();
		$this->workoutUpdateModel = new WorkoutUpdateModel();
	}
	
	public function getPage()
	{

		if($this->workoutUpdateView->getIfAdded())
		{
			$this->addNewUpdate();
		}
		if($this->workoutUpdateView->getIfRemove())
		{
			$this->removeUpdate(); 
		}
		if($this->workoutUpdateView->getIfEdited())
		{
			$this->editUpdate(); 
		}

		$html = $this->workoutUpdateView->getWorkoutUpdatePage();
		$html = $this->pageView->getHtmlPage("Träningsuppdateringar - Träningsdagboken", "", $html);
		return $html;
	}


	private function addNewUpdate($updateID = null)
	{
		if(commonThings::checkIfPost()) 
		{
			$title = $this->workoutUpdateView->getWorkoutUpdateTitle();
			$comment = $this->workoutUpdateView->getWorkoutUpdateComment();
			$workoutID = 27;
			//TODO: $workoutID = $this->workoutUpdateView->getChosenWorkoutID(); //TODO, HÄMTA ID. validera att det finns.
			if($this->workoutUpdateModel->ValidateWorkoutUpdate($title, $comment, $workoutID, $updateID))
			{
				if($updateID === null)
				{	
					$this->workoutUpdateModel->CreateAndSaveUpdate($title, $comment, $workoutID);
				}
				else
				{
					$this->workoutUpdateModel->CreateAndSaveUpdate($title, $comment, $workoutID, $updateID);
				}
			}
		}
	}

	private function removeUpdate()
	{
		//TODO hämta id, kolla att det är ett id som existerar, och sedan så 
		// om det är ok, så kallar vi på en funktion i WorkoutUpdateDAL.

	}

	private function editUpdate()
	{
		if(commonThings::checkIfPost()) 
		{
			$title = $this->workoutUpdateView->getEditUpdateTitle();
			$comment = $this->workoutUpdateView->getEditUpdateComment();
			if($this->workoutUpdateModel->ValidateWorkoutUpdate($title, $comment, $workoutID))
			{	
				$workoutID = $this->workoutUpdateView->getChosenEditWorkoutID(); //TODO, HÄMTA ID.
				$updateID =  $this->workoutUpdateView->getUpdateIdToEdit();
				$this->workoutUpdateModel->CreateAndSaveUpdate($title, $comment, $workoutID, $updateID);
			}
		}
	}

}